/*
 * Copyright [2013-2021], Alibaba Group Holding Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.alibaba.polardbx.mock.server;

import com.alibaba.polardbx.Fields;
import com.alibaba.polardbx.net.compress.IPacketOutputProxy;
import com.alibaba.polardbx.net.compress.PacketOutputProxyFactory;
import com.alibaba.polardbx.net.handler.QueryHandler;
import com.alibaba.polardbx.net.packet.EOFPacket;
import com.alibaba.polardbx.net.packet.FieldPacket;
import com.alibaba.polardbx.net.packet.ResultSetHeaderPacket;
import com.alibaba.polardbx.net.packet.RowDataPacket;
import com.alibaba.polardbx.net.util.CharsetUtil;
import com.alibaba.polardbx.common.utils.logger.Logger;
import com.alibaba.polardbx.common.utils.logger.LoggerFactory;

import java.io.UnsupportedEncodingException;

/**
 * Mocked Query Handler
 *
 * @author changyuan.lh 2019年2月20日 下午4:15:00
 * @since 5.0.0
 */
public class MockQueryHandler implements QueryHandler {

    private static final Logger logger = LoggerFactory.getLogger(MockQueryHandler.class);

    public static final String RESULT_32K =
        "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";

    public static final String RESULT_16K =
        "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";

    public static final String RESULT_8K =
        "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 quGWS21ibc5jImZEXjT48LU8TgBA8Y";

    public static final String RESULT_4K =
        "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 IByDLsWLJ/TLDsQ";

    public static final String RESULT_2K =
        "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";

    public static final String RESULT_1K =
        "6oQmsgIjKTyqtqNBA2USjcvlscFfGwiDx1ZKE2m6/f8rvG24W6yQtJQsUwq4wLsXzck5SBEEXv1I bOPQaXpBJfl8sleOeeEUm+QBiyqLNrNyLdW63o84rpCjW4aHu/JjG9ZbADxZzugJQSEkLe9Ln0QB SJdFj6dR0gn9jsCWgtBYdN86TAC718aizeYQTyovEW2H9kSYNlcWbskqHmaPNPn5wzTgH+Ju8ktc Hp7K8Z/QdMEpM+sbuClGNimpZ5hf2OMGjVnqMcGSjFyRDH6ANvenOtK7OR0c+thBapFrjfKArZOh dcJvKiQEbcLUdHqhQCCZAWxPAdLAXXBJG8B1PPQh7q+4gPJrqqnwcqFN0TdIQoZRwQNDNpZLhuKL 455/MsqHUpLuATRR5aywQ1xVjRdGpHjZk5PMje4eHpxA0BSCGaEKuQ6cm1ok/wr5lh5c8+oqoh03 qTDUC/LZAsbykI+C5zjM3QNH+83X/oNjDLrXKWdoY0N2Mc27+SvfirP0E0wVqjHKs47sVeLE6x0M 4/4iZ1UV0Xk+hWqPD/9AKqHHiLdnjGZeVR0z9f1uwgfSlp7m7wMaGn8Dxts29Jz4B6LGAG3QPIys 1xzFaaNEI8dQESS6snkJxqEyiVVWPFzidqPcY0B8GtM4QksHCJ3fBVQiN07OuM2ogbT9GVnXoCJN CuUZJUEBrjzehqthd2oks8CNw+1jhFP1/SdHarCrnP/JmB/B3XOUVGVtYkurWqHBflbpnnE1NRlk 8J80vXQaP0A1+33JboaSj4X4Mxml6O7jkiWxO0ts5SmEXU3tchEhrWBXMVlB4S2f+ehkM4QfJY1a U0OuUBFTT7dd9IdbZVOlpjpSuxIMi3ScwL67f2nxzDPtn8BOx8D7cHwBPmE0fcKrYA2cfFBBmR6B 9UN86ptC1S87atQfkJA25annb4zmD9hzEVkp/wECOp+CI2lP+l0RLUlXIT86xIvLqmZOGx5IgmuD Yhmwv0wo+8hayaCbZbedQnc";

    private final MockConnection conn;

    public MockQueryHandler(MockConnection conn) {
        this.conn = conn;
    }

    @Override
    public void query(String sql) {
        IPacketOutputProxy proxy = PacketOutputProxyFactory.getInstance().createProxy(conn);
        proxy.packetBegin();

        // header
        ResultSetHeaderPacket header = new ResultSetHeaderPacket();
        header.packetId = conn.getNewPacketId();
        header.fieldCount = 1;
        header.write(proxy);

        // fields
        FieldPacket[] fields = new FieldPacket[header.fieldCount];
        for (FieldPacket field : fields) {
            field = new FieldPacket();
            field.packetId = conn.getNewPacketId();
            field.charsetIndex = CharsetUtil.getIndex(conn.getResultSetCharset());
            field.name = encode("Result", conn.getResultSetCharset());
            field.type = Fields.FIELD_TYPE_VAR_STRING;
            field.write(proxy);
        }

        // eof
        EOFPacket eof = new EOFPacket();
        eof.packetId = conn.getNewPacketId();
        proxy = eof.write(proxy);

        String mockResult = sql;
        if (sql.indexOf("t_1K") >= 0) {
            mockResult = RESULT_1K;
        } else if (sql.indexOf("t_2K") >= 0) {
            mockResult = RESULT_2K;
        } else if (sql.indexOf("t_4K") >= 0) {
            mockResult = RESULT_4K;
        } else if (sql.indexOf("t_8K") >= 0) {
            mockResult = RESULT_8K;
        } else if (sql.indexOf("t_16K") >= 0) {
            mockResult = RESULT_16K;
        } else if (sql.indexOf("t_32K") >= 0) {
            mockResult = RESULT_32K;
        }

        // results
        RowDataPacket row = new RowDataPacket(header.fieldCount);
        row.add(encode(mockResult, conn.getResultSetCharset()));
        row.packetId = conn.getNewPacketId();
        proxy = row.write(proxy);

        // last eof
        EOFPacket lastEof = new EOFPacket();
        lastEof.packetId = conn.getNewPacketId();
        lastEof.status = 2;
        proxy = lastEof.write(proxy);

        // write buffer
        proxy.packetEnd();
    }

    private static byte[] encode(String src, String charset) {
        if (src == null) {
            return null;
        }

        charset = CharsetUtil.getJavaCharset(charset);
        try {
            return src.getBytes(charset);
        } catch (UnsupportedEncodingException e) {
            logger.warn("Unknown charset: " + charset, e);
            return src.getBytes();
        }
    }
}
